package com.chenyue.cm.match.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.chenyue.cm.live.vo.LiveUser;
import com.chenyue.cm.match.vo.GroupUserList;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * VIEW
 * </p>
 *
 * @author Lbx
 * @since 2021-10-31
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "MatchInfo对象", description = "VIEW")
public class MatchInfo extends Model<MatchInfo> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键id")
    private Integer id;

    @ApiModelProperty(value = "三方机构id")
    private Integer cu;

    @ApiModelProperty(value = "第三方机构名称")
    private String parentName;

    @ApiModelProperty(value = "第三方机构Logo")
    private String parentLogo;

    @ApiModelProperty(value = "赛事名称")
    private String matchName;

    @ApiModelProperty(value = "比赛地区")
    private String matchArea;

    @ApiModelProperty(value = "付费方式 0免费 1纯金币 2纯钱")
    private Integer payType;

    @ApiModelProperty(value = "报名价格")
    private Double signPrice;

    @ApiModelProperty(value = "比赛报名时间")
    private String signTime;

    @ApiModelProperty(value = "比赛开始时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date matchStartTime;

    @ApiModelProperty(value = "比赛开始时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date matchEndTime;

    @ApiModelProperty(value = "比赛分类")
    private String type;

    @ApiModelProperty(value = "比赛分类右上角")
    private String label;

    @ApiModelProperty(value = "比赛分类图标")
    private String icon;

    @ApiModelProperty(value = "赛事轮播图")
    private String bannerList;

    @ApiModelProperty(value = "参赛类型（1单人单项/2单人多项/3多人多项）")
    private String matchType;

    @ApiModelProperty(value = "参赛范围")
    private String matchGroup;

    @ApiModelProperty(value = "比赛要求")
    private String description;

    @ApiModelProperty(value = "参赛人数")
    private Integer signCount;

    @ApiModelProperty(value = "奖励积分")
    private Integer integral;

    @ApiModelProperty(value = "报名人数")
    private Integer signRealCount;

    @ApiModelProperty(value = "参赛项目")
    private String matchItems;

    @ApiModelProperty(value = "连麦时长（单位：分钟）")
    private Integer chatTime;

    @ApiModelProperty(value = "审核备注")
    private String remark;

    @TableField(exist = false)
    @ApiModelProperty(value = "直播间个数")
    private Integer liveNum;

    @ApiModelProperty(value = "审核状态 0待审核 1通过 2拒绝")
    private Integer state;

    @ApiModelProperty(value = "报名是否需要审核（1不需要 0需要）")
    private Integer isPublic;

    @TableField(exist = false)
    @ApiModelProperty(value = "直播间列表")
    private List<LiveUser> liveList;

    @TableField(exist = false)
    @ApiModelProperty(value = "参赛员列表")
    private List<GroupUserList> groupUserList;

    @TableField(exist = false)
    @ApiModelProperty(value = "参赛员列表")
    private List<GroupUserList.User> userList;

    @TableField(exist = false)
    @ApiModelProperty(value = "是否报名 1是2不是")
    private Integer isSign = 2;

    @TableField(exist = false)
    @ApiModelProperty(value = "是否预约过 1是2不是")
    private Integer hasAppointment = 2;

    @TableField(exist = false)
    @ApiModelProperty(value = "付款保障")
    private String payContent;

    @ApiModelProperty(value = "当前进行赛程 1初赛 2复赛 3决赛")
    private Integer format;

    @ApiModelProperty(value = "当前进行赛程id")
    private Integer formatId;

    @ApiModelProperty(value = "当前进行赛程晋级方式")
    private Integer promotionType;

    @ApiModelProperty(value = "是否需要实名 1需要 2不需要")
    private Integer needVerify;


    @Override
    protected Serializable pkVal() {
        return null;
    }

}
